var runtime.gcBitsArenas
35 uses
runtime (current package)
malloc.go#L495: lockInit(&gcBitsArenas.lock, lockRankGcBitsArenas)
mheap.go#L2885: var gcBitsArenas struct {
mheap.go#L2916: head := (*gcBitsArena)(atomic.Loadp(unsafe.Pointer(&gcBitsArenas.next)))
mheap.go#L2923: lock(&gcBitsArenas.lock)
mheap.go#L2927: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2928: unlock(&gcBitsArenas.lock)
mheap.go#L2937: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2940: fresh.next = gcBitsArenas.free
mheap.go#L2941: gcBitsArenas.free = fresh
mheap.go#L2942: unlock(&gcBitsArenas.lock)
mheap.go#L2954: fresh.next = gcBitsArenas.next
mheap.go#L2955: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), unsafe.Pointer(fresh))
mheap.go#L2957: unlock(&gcBitsArenas.lock)
mheap.go#L2986: lock(&gcBitsArenas.lock)
mheap.go#L2987: if gcBitsArenas.previous != nil {
mheap.go#L2988: if gcBitsArenas.free == nil {
mheap.go#L2989: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L2992: last := gcBitsArenas.previous
mheap.go#L2993: for last = gcBitsArenas.previous; last.next != nil; last = last.next {
mheap.go#L2995: last.next = gcBitsArenas.free
mheap.go#L2996: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L2999: gcBitsArenas.previous = gcBitsArenas.current
mheap.go#L3000: gcBitsArenas.current = gcBitsArenas.next
mheap.go#L3001: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), nil) // newMarkBits calls newArena when needed
mheap.go#L3002: unlock(&gcBitsArenas.lock)
mheap.go#L3009: if gcBitsArenas.free == nil {
mheap.go#L3010: unlock(&gcBitsArenas.lock)
mheap.go#L3015: lock(&gcBitsArenas.lock)
mheap.go#L3017: result = gcBitsArenas.free
mheap.go#L3018: gcBitsArenas.free = gcBitsArenas.free.next
The pages are generated with Golds v0.8.4. (GOOS=linux GOARCH=amd64)